quartz: move atom/pasteboard type conversions functions to GDK
authorKristian Rietveld <kris@loopnest.org>
Sun, 30 Dec 2012 16:09:22 +0000 (17:09 +0100)
committerMichael Natterer <mitch@lanedo.com>
Thu, 28 Mar 2013 12:10:38 +0000 (13:10 +0100)
(cherry picked from commit a269c2f8d26a588c4b61ad605ef496e89759cc03)

gdk/quartz/gdkquartz.h
gdk/quartz/gdkselection-quartz.c
gtk/gtkdnd-quartz.c
gtk/gtkquartz.c
gtk/gtkquartz.h
tests/dummy-headers/AppKit/AppKit.h

index 9427d1dc85413e72723fe14a86f3ada2417d3d18..49a67492301f0c82c4aadaf4d3be9d7da0588935 100644 (file)
@@ -55,6 +55,10 @@ typedef enum
 
 GdkOSXVersion gdk_quartz_osx_version (void);
 
+GdkAtom   gdk_quartz_pasteboard_type_to_atom_libgtk_only        (NSString       *type);
+NSString *gdk_quartz_target_to_pasteboard_type_libgtk_only      (const gchar    *target);
+NSString *gdk_quartz_atom_to_pasteboard_type_libgtk_only        (GdkAtom         atom);
+
 G_END_DECLS
 
 #define __GDKQUARTZ_H_INSIDE__
index ae595b0e60af5aba7aae9cee99e1f4bee0c2ba4c..bb57a749e901362d2a38d20dc050835222d0b2ca 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "gdkselection.h"
 #include "gdkproperty.h"
+#include "gdkquartz.h"
 
 gboolean
 _gdk_quartz_display_set_selection_owner (GdkDisplay *display,
@@ -171,3 +172,42 @@ _gdk_quartz_display_text_property_to_utf8_list (GdkDisplay    *display,
     }
 }
 
+GdkAtom
+gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type)
+{
+  if ([type isEqualToString:NSStringPboardType])
+    return gdk_atom_intern_static_string ("UTF8_STRING");
+  else if ([type isEqualToString:NSTIFFPboardType])
+    return gdk_atom_intern_static_string ("image/tiff");
+  else if ([type isEqualToString:NSColorPboardType])
+    return gdk_atom_intern_static_string ("application/x-color");
+  else if ([type isEqualToString:NSURLPboardType])
+    return gdk_atom_intern_static_string ("text/uri-list");
+  else
+    return gdk_atom_intern ([type UTF8String], FALSE);
+}
+
+NSString *
+gdk_quartz_target_to_pasteboard_type_libgtk_only (const char *target)
+{
+  if (strcmp (target, "UTF8_STRING") == 0)
+    return NSStringPboardType;
+  else if (strcmp (target, "image/tiff") == 0)
+    return NSTIFFPboardType;
+  else if (strcmp (target, "application/x-color") == 0)
+    return NSColorPboardType;
+  else if (strcmp (target, "text/uri-list") == 0)
+    return NSURLPboardType;
+  else
+    return [NSString stringWithUTF8String:target];
+}
+
+NSString *
+gdk_quartz_atom_to_pasteboard_type_libgtk_only (GdkAtom atom)
+{
+  gchar *target = gdk_atom_name (atom);
+  NSString *ret = gdk_quartz_target_to_pasteboard_type_libgtk_only (target);
+  g_free (target);
+
+  return ret;
+}
index 57601055703f225ccc7b96fdb4f321e7752bdbdc..acb9456e0a9313a407c013dbbabfb2f95935f0a9 100644 (file)
@@ -144,7 +144,7 @@ struct _GtkDragFindData
   selection_data.selection = GDK_NONE;
   selection_data.data = NULL;
   selection_data.length = -1;
-  selection_data.target = _gtk_quartz_pasteboard_type_to_atom (type);
+  selection_data.target = gdk_quartz_pasteboard_type_to_atom_libgtk_only (type);
   selection_data.display = gdk_display_get_default ();
 
   if (gtk_target_list_find (info->target_list, 
index 557fa8ac2c9b4d4153632603354ab0ec3bacaf80..722a00bac8b4ca9841df135d2b1d9df770ad6464 100644 (file)
@@ -76,21 +76,6 @@ _gtk_quartz_create_image_from_pixbuf (GdkPixbuf *pixbuf)
   return nsimage;
 }
 
-static NSString *
-target_to_pasteboard_type (const char *target)
-{
-  if (strcmp (target, "UTF8_STRING") == 0)
-    return NSStringPboardType;
-  else if (strcmp (target, "image/tiff") == 0)
-    return NSTIFFPboardType;
-  else if (strcmp (target, "application/x-color") == 0)
-    return NSColorPboardType;
-  else if (strcmp (target, "text/uri-list") == 0)
-    return NSURLPboardType;
-  else
-    return [NSString stringWithUTF8String:target];
-}
-
 NSSet *
 _gtk_quartz_target_list_to_pasteboard_types (GtkTargetList *target_list)
 {
@@ -100,10 +85,8 @@ _gtk_quartz_target_list_to_pasteboard_types (GtkTargetList *target_list)
   for (list = target_list->list; list; list = list->next)
     {
       GtkTargetPair *pair = list->data;
-      gchar *target = gdk_atom_name (pair->target);
       g_return_val_if_fail (pair->flags < 16, NULL);
-      [set addObject:target_to_pasteboard_type (target)];
-      g_free (target);
+      [set addObject:gdk_quartz_atom_to_pasteboard_type_libgtk_only (pair->target)];
     }
 
   return set;
@@ -118,27 +101,12 @@ _gtk_quartz_target_entries_to_pasteboard_types (const GtkTargetEntry *targets,
 
   for (i = 0; i < n_targets; i++)
     {
-      [set addObject:target_to_pasteboard_type (targets[i].target)];
+      [set addObject:gdk_quartz_target_to_pasteboard_type_libgtk_only (targets[i].target)];
     }
 
   return set;
 }
 
-GdkAtom 
-_gtk_quartz_pasteboard_type_to_atom (NSString *type)
-{
-  if ([type isEqualToString:NSStringPboardType])
-    return gdk_atom_intern_static_string ("UTF8_STRING");
-  else if ([type isEqualToString:NSTIFFPboardType])
-    return gdk_atom_intern_static_string ("image/tiff");
-  else if ([type isEqualToString:NSColorPboardType])
-    return gdk_atom_intern_static_string ("application/x-color");
-  else if ([type isEqualToString:NSURLPboardType])
-    return gdk_atom_intern_static_string ("text/uri-list");
-  else
-    return gdk_atom_intern ([type UTF8String], FALSE);  
-}
-
 GList *
 _gtk_quartz_pasteboard_types_to_atom_list (NSArray *array)
 {
@@ -150,7 +118,7 @@ _gtk_quartz_pasteboard_types_to_atom_list (NSArray *array)
 
   for (i = 0; i < count; i++) 
     {
-      GdkAtom atom = _gtk_quartz_pasteboard_type_to_atom ([array objectAtIndex:i]);
+      GdkAtom atom = gdk_quartz_pasteboard_type_to_atom_libgtk_only ([array objectAtIndex:i]);
 
       result = g_list_prepend (result, GDK_ATOM_TO_POINTER (atom));
     }
@@ -266,20 +234,17 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard     *pasteboard,
                                               GtkSelectionData *selection_data)
 {
   NSString *type;
-  gchar *target;
   GdkDisplay *display;
   gint format;
   const guchar *data;
   NSUInteger length;
 
-  target = gdk_atom_name (gtk_selection_data_get_target (selection_data));
   display = gtk_selection_data_get_display (selection_data);
   format = gtk_selection_data_get_format (selection_data);
   data = gtk_selection_data_get_data (selection_data);
   length = gtk_selection_data_get_length (selection_data);
 
-  type = target_to_pasteboard_type (target);
-  g_free (target);
+  type = gdk_quartz_atom_to_pasteboard_type_libgtk_only (gtk_selection_data_get_target (selection_data));
 
   if ([type isEqualTo:NSStringPboardType]) 
     [pasteboard setString:[NSString stringWithUTF8String:(const char *)data]
index c5200283ffa87b9e9fabb1156109e96742a18cd7..70f9268fe1ac66382339921def024e68bbc2ca6d 100644 (file)
@@ -29,7 +29,6 @@ NSSet   *_gtk_quartz_target_entries_to_pasteboard_types (const GtkTargetEntry *t
                                                         guint                 n_targets);
 
 GList   *_gtk_quartz_pasteboard_types_to_atom_list (NSArray  *array);
-GdkAtom _gtk_quartz_pasteboard_type_to_atom        (NSString *type);
 
 GtkSelectionData *_gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
                                                                  GdkAtom       target,
index 1456923187912aa8b3862e37f7a846a384d95e95..557a8a7a5bedd5a7727f71d0a41235298f4ee993 100644 (file)
@@ -20,5 +20,8 @@ typedef int NSTrackingRectTag;
 @interface NSWindow {}
 @end
 
+@interface NSString {}
+@end
+
 @protocol NSDraggingInfo
 @end